Serialize Pulumi publish steps to avoid Inferno.Common build races#21
Merged
Merged
Conversation
The deploy created publish-api, publish-mqtt, and publish-cli with no dependency between them, so Pulumi ran the three `dotnet publish` commands in parallel. Every service references Inferno.Common, so the parallel publishes rebuilt Common concurrently and collided on its obj/bin outputs (MSBuild file locks), failing the deploy. Chain each publish command to the previous one via DependsOn so only one `dotnet publish` touches the shared Inferno.Common build outputs at a time. Ordering only; no functional change.
|
🚀 The Update (preview) for CamSoper-org/inferno-deploy/main (at 4da77a4) was successful. ✨ Neo Code ReviewThis is a low-risk build-pipeline fix that serializes publish steps to avoid MSBuild concurrency issues; the replacements are expected and only cause the publish/restart commands to re-run, with no data loss. ✅ Low RiskThe PR serializes the These are all ephemeral Resource Changes Name Type Operation
+- restart-mqtt command:remote:Command replaced
+- publish-mqtt command:local:Command replaced
+- restart-api command:remote:Command replaced
+- publish-api command:local:Command replaced
+- publish-cli command:local:Command replaced
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Fixes the Pulumi deploy failure during the publish step.
Inferno.Deploy/Program.cscreated threeLocalCommands —publish-api,publish-mqtt,publish-cli— with no dependency between them, so Pulumi ran the threedotnet publishcommands in parallel. Every service referencesInferno.Common(seeserviceDeps), so the parallel publishes rebuiltInferno.Commonconcurrently and collided on itsobj/+bin/outputs (MSBuild file locks), failing the deploy.Change
Chain each publish command to the previous one via
DependsOn, serializing them (publish-api → publish-mqtt → publish-cli) so only onedotnet publishtouches the sharedInferno.Commonbuild outputs at a time. Ordering only — no functional change, and downstreamcopy/restartdependencies are untouched.Notes
v*tags) just surfaced it. Worth re-checking that the Pulumi Cloud trigger is back on tags so untagged commits don't auto-deploy.Verification
dotnet build Inferno.Deploy/Inferno.Deploy.csproj→ clean (0 warnings).pulumi up/pulumi previewcompleting the publish step without the file-lock error.https://claude.ai/code/session_01T8v7xa23G8v1GjsSFBwzme
Generated by Claude Code